
#ifndef TYPE_H
#define TYPE_H

#include "Object.h"
#include "String.h"

namespace Riccsson
{
	namespace System
	{
		class String;

		class Type : public Object
		{

		public:
			String ClassName;

			Type(const String& className);
			~Type(void);

			//
			// Summary:
			//     Determines whether an instance of the current System.Type can be assigned
			//     from an instance of the specified Type.
			//
			// Parameters:
			//   c:
			//     The type to compare with the current type.
			//
			// Returns:
			//     true if c and the current Type represent the same type, or if the current
			//     Type is in the inheritance hierarchy of c, or if the current Type is an interface
			//     that c implements, or if c is a generic type parameter and the current Type
			//     represents one of the constraints of c. false if none of these conditions
			//     are true, or if c is null.
			public: virtual bool IsAssignableFrom(Type* c)
			{
				throw;
			}
		};
	}
}

#endif